package roborally;

import be.kuleuven.cs.som.annotate.Basic;
import be.kuleuven.cs.som.annotate.Raw;

/**
 * A superclass representing all terminatable elements.
 * 
 * @author Jef Keijers/Bachelor of Science: Informatics
 * @version 1.0
 */
public abstract class Terminatable { 
	
	@Basic
	public boolean isTerminated() {
		return isTerminated;
	}
	
	/**
	 * @post 
	 * 			| new.isTerminated == true
	 */
	protected void setIsTerminatedToTrue() {
		isTerminated=true;
	}
	
	private boolean isTerminated=false;

	@Raw
	public abstract void terminate();
	
}
